﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using AcadPos.Bussiness;
using AcadPos.Entity;

namespace AcadPosApp.ControlClass
{
    public static class CNMatricula
    {
        #region Lista Matriculas Aluno
        public static DataTable listaMatriculasAluno(Matricula matricula)
        {
            return new NGMatricula().listaMatriculasAluno(matricula);
        }
        #endregion

        #region Insere 1ª Financeiro
        public static bool inserir1ParcelaFinanceiro(Financeiro financeiro)
        {
            return new NGMatricula().inserir1ParcelaFinanceiro(financeiro);
        }
        #endregion

        #region Valida Pagamento
        public static bool validarExistenciaPagamento(Financeiro financeiro)
        {
            return new NGMatricula().validarExistenciaPagamento(financeiro);
        }
        #endregion

        #region Valida Existencia de Notas
        public static bool validarExistenciaNotas(Matricula matricula)
        {
            return new NGMatricula().validarExistenciaNotas(matricula);
        }
        #endregion

        #region EXCLUIR
        public static bool excluir(Matricula matricula)
        {
            return new NGMatricula().excluir(matricula);
        }
        #endregion

        #region Inserir Situação Matrícula
        public static bool inserirSituacaoMatricula(Matricula matricula)
        {
            return new NGMatricula().inserirSituacaoMatricula(matricula);
        }
        #endregion

        #region Excluir Situação Matrícula
        public static bool excluirSituacaoMatricula(Matricula matricula)
        {
            return new NGMatricula().excluirSituacaoMatricula(matricula);
        }
        #endregion

        #region Lista Situação Matrícula
        public static DataTable listaSituacaoMatricula(Matricula matricula)
        {
            return new NGMatricula().listaSituacaoMatricula(matricula);
        }
        #endregion

        #region Lista Financeiro Matrícula
        public static DataTable listaFinanceiroMatricula(Matricula matricula)
        {
            return new NGMatricula().listaFinanceiroMatricula(matricula);
        }
        #endregion

        #region Get Financeiro Dependência
        public static DataTable getFichaFinanceiraPendencia(string pNossoNumero)
        {
            return new NGMatricula().getFichaFinanceiraPendencia(pNossoNumero);
        }
        #endregion

        #region Get Ficha Financeira
        public static DataTable getFichaFinanceira(string pNossoNumero)
        {
            return new NGMatricula().getFichaFinanceira(pNossoNumero);
        }
        #endregion

        #region Obtem os dados financeiro da parcela referente a matrícula
        public static DataTable obterDadosFinanceiroMatricula(int pNossoNumero)
        {
            return new NGMatricula().obterDadosFinanceiroMatricula(pNossoNumero);
        }
        #endregion

        #region Gera Parcelas Restantes
        public static bool geraParcelasRestantes(Matricula matricula)
        {
            return new NGMatricula().geraParcelasRestantes(matricula);
        }
        #endregion

        #region Lista Disciplinas Matriculadas Aluno
        public static DataTable listaDisciplinasMatriculadasPorAluno(Matricula matricula)
        {
            return new NGMatricula().listaDisciplinasMatriculadasPorAluno(matricula);
        }
        #endregion

        #region Insere Justificativa Faltas
        public static bool insereJustificativaFalta(Matricula matricula)
        {
            return new NGMatricula().insereJustificativaFalta(matricula);
        }
        #endregion

        #region Lista Disciplinas Matricula Pendente por Equivalentes
        public static DataTable listaDiscMatriculaPendente(Disciplina disciplina, int idPolo, int matriculaAluno)
        {
            return new NGMatricula().listaDiscMatriculaPendente(disciplina, idPolo, matriculaAluno);
        }
        #endregion

        #region Insere a primeira parcela do financeiro de pendencia
        public static bool insere1FinanceiroPendencia(Financeiro financeiro)
        {
            return new NGMatricula().insere1FinanceiroPendencia(financeiro);
        }
        #endregion

        #region Lista Disciplinas Matriculadas Aluno Pendentes
        public static DataTable listaDisciplinasMatriculadasPorAlunoPendentes(Matricula matricula)
        {
            return new NGMatricula().listaDisciplinasMatriculadasPorAlunoPendentes(matricula);
        }
        #endregion

        #region Relatório Histórico
        public static DataTable relatorioHistorico(Matricula matricula)
        {
            return new NGMatricula().relatorioHistorico(matricula);
        }
        #endregion

        #region Atualiza Financeiro
        public static bool atualizarFinanceiro(Financeiro financeiro)
        {
            return new NGMatricula().atualizarFinanceiro(financeiro);
        }
        #endregion

        #region Retorna Limite Qtd Exclusao Parcelas
        public static int retornaLimiteExclusaoParcelas(Matricula matricula)
        {
            return new NGMatricula().retornaLimiteExclusaoParcelas(matricula);
        }
        #endregion

        #region Exclui parcela financeiro
        public static bool excluirParcelaFinanceiro(Financeiro financeiro)
        {
            return new NGMatricula().excluirParcelaFinanceiro(financeiro);
        }
        #endregion

        #region Gera Parcelas Restantes Turma
        public static bool geraParcelasRestantesTurma(Matricula matricula)
        {
            return new NGMatricula().geraParcelasRestantesTurma(matricula);
        }
        #endregion

        #region Get Valor Imposto de Renda
        public static double getValorImpostoRenda(int pMatricula, int pAno)
        {
            return new NGMatricula().getValorImpostoRenda(pMatricula, pAno);
        }
        #endregion
        
        #region Relatorio Pre-Matricula
        public static DataTable relatorioPreMatricula(Curso curso, DateTime dtInicio, DateTime dtFim)
        {
            return new NGMatricula().relatorioPreMatricula(curso, dtInicio, dtFim);
        }
        #endregion
        
        #region Get Solicitações Certificado
        public static DataTable getSolicitacoesCertificado(int pMatricula)
        {
            return new NGMatricula().getSolicitacoesCertificado(pMatricula);
        }
        #endregion

        #region Solicitar Certificado
        public static bool solicitarCertificado(int pMatricula, DateTime dataConclusaoCurso, string tituloTCC, int idProfissional, DateTime dataImpresso, DateTime dataPronto, DateTime dataEntregue)
        {
            return new NGMatricula().solicitarCertificado(pMatricula, dataConclusaoCurso, tituloTCC, idProfissional, dataImpresso, dataPronto, dataEntregue);
        }
        #endregion

        #region Verifica se aluno é inadimplente
        public static bool isInadimplente(int pMatricula)
        {
            return new NGMatricula().isInadimplente(pMatricula);
        }
        #endregion    
    }
}